package com.sjy.project.ent.yearSta.service.impl;

import java.util.List;
import com.sjy.common.utils.DateUtils;

import org.apache.ibatis.annotations.Param;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.sjy.project.ent.yearSta.mapper.EntKpiYearStaMapper;
import com.sjy.project.ent.yearSta.mapper.EntRentInLandMapper;
import com.sjy.project.ent.yearSta.mapper.EntRentOutLandMapper;
import com.sjy.project.ent.yearSta.domain.EntKpiYearSta;
import com.sjy.project.ent.yearSta.domain.EntRentInLand;
import com.sjy.project.ent.yearSta.domain.EntRentOutLand;
import com.sjy.project.ent.yearSta.service.IEntRentOutLandService;
import com.sjy.common.utils.text.Convert;

/**
 * 出租土地Service业务层处理
 * 
 * @author ljb
 * @date 2022-06-07
 */
@Service
public class EntRentOutLandServiceImpl implements IEntRentOutLandService 
{
    @Autowired
    private EntRentOutLandMapper entRentOutLandMapper;
    @Autowired
    private EntRentInLandMapper entRentInLandMapper;
    @Autowired
    private EntKpiYearStaMapper entKpiYearStaMapper;

    /**
     * 查询出租土地
     * 
     * @param id 出租土地主键
     * @return 出租土地
     */
    @Override
    public EntRentOutLand selectEntRentOutLandById(Long id)
    {
        return entRentOutLandMapper.selectEntRentOutLandById(id);
    }

    /**
     * 查询出租土地列表
     * 
     * @param entRentOutLand 出租土地
     * @return 出租土地
     */
    @Override
    public List<EntRentOutLand> selectEntRentOutLandList(EntRentOutLand entRentOutLand)
    {
        return entRentOutLandMapper.selectEntRentOutLandList(entRentOutLand);
    }

    /**
     * 新增出租土地
     * 
     * @param entRentOutLand 出租土地
     * @return 结果
     */
    @Override
    public int insertEntRentOutLand(EntRentOutLand entRentOutLand)
    {
        entRentOutLand.setCreateTime(DateUtils.getNowDate());
        return entRentOutLandMapper.insertEntRentOutLand(entRentOutLand);
    }

    /**
     * 同步出租土地信息到对方承租土地去
     * 
     * @param entRentOutLand 出租土地
     * @return 结果
     */
    public int copyOut2In(EntRentOutLand out) {
    	//检测当前出租土地信息对应的统代 企业 是否有审核记录，并且已经被街道确认的
    	EntKpiYearSta sta = entKpiYearStaMapper.selectEntKpiYearStaByCreditCode(out.getLesseeCreditCode(), out.getDataYear());
    	if(sta != null && sta.getConfirmFlag() == 1) {
    		//只有当有数据，且已经被确认的情况下；就默认不执行
    		return 1;
    	}
    	
    	//检测当前承租土地信息有没有在对方的出租土地信息中
    	EntRentInLand in = new EntRentInLand();
    	in.setCreditCode(out.getLesseeCreditCode());
    	in.setDataYear(out.getDataYear());
    	in.setDelFlag("0");
    	List<EntRentInLand> ins = entRentInLandMapper.selectEntRentInLandList(in);
    	if(ins!= null && ins.size()!=0) {
    		return ins.size();
    	}
    	//插入
    	//in.setKpiId(out.getKpiId());
    	in.setCreateBy(out.getCreateBy());
    	in.setFilePath(out.getFilePath());
    	in.setEntName(out.getLessee());
    	in.setLandLocated(out.getLandLocated());
    	in.setLessor(out.getEntName());
    	in.setLessorCreditCode(out.getCreditCode());
    	
    	in.setLeasedArea(out.getRentalArea());
    	in.setLeasedAreaStreet(out.getRentalAreaStreet());
    	in.setLeasedAreaSystem(out.getRentalAreaSystem());
    	
    	in.setAreaOfInLand(out.getAreaOfOutLand());
    	in.setAreaOfInLandStreet(out.getAreaOfOutLandStreet());
    	in.setAreaOfInLandSystem(out.getAreaOfOutLandSystem());
    	
    	return entRentInLandMapper.insertEntRentInLand(in);
    }
    /**
     * 修改出租土地
     * 
     * @param entRentOutLand 出租土地
     * @return 结果
     */
    @Override
    public int updateEntRentOutLand(EntRentOutLand entRentOutLand)
    {
        entRentOutLand.setUpdateTime(DateUtils.getNowDate());
        return entRentOutLandMapper.updateEntRentOutLand(entRentOutLand);
    }

    /**
     * 批量删除出租土地
     * 
     * @param ids 需要删除的出租土地主键
     * @return 结果
     */
    @Override
    public int deleteEntRentOutLandByIds(String ids)
    {
        return entRentOutLandMapper.deleteEntRentOutLandByIds(Convert.toStrArray(ids));
    }
    /**
     * 根据kpiId批量假删
     * @param kpiId
     * @param loginName
     * @return
     */
    public int deleteEntRentOutLandByKpiId(Long kpiId,String loginName) {
    	return entRentOutLandMapper.deleteEntRentOutLandByKpiId(kpiId, loginName);
    }
    /**
     * 根据creditCode dataYear批量假删
     * @param kpiId
     * @param loginName
     * @return
     */
    public int deleteEntRentOutLandByCreditCode(String creditCode,Integer dataYear,String loginName) {
    	return entRentOutLandMapper.deleteEntRentOutLandByCreditCode(creditCode, dataYear, loginName);
    }
    /**
     * 删除出租土地信息
     * 
     * @param id 出租土地主键
     * @return 结果
     */
    @Override
    public int deleteEntRentOutLandById(Long id)
    {
        return entRentOutLandMapper.deleteEntRentOutLandById(id);
    }
}
